python课后答案第七周

您所在的位置:网站首页 mooc python语言程序设计东北大学答案 python课后答案第七周

python课后答案第七周

2024-04-02 00:48| 来源: 网络整理| 查看: 265

练习1:文件行数

描述

打印输出附件文件的有效行数,注意:空行不计算为有效行数。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入输出示例

这是仅给出输出格式样例,不是结果。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入

输出

示例 1

共100行

我的代码

#week7_1.py

#文件的行数

f=open("latex.log")

lines=0

for line in f:

if len(line)==1: #过滤掉空行,空行只有一换行符

continue

lines +=1

print("共{}行".format(lines))

参考代码

f = open("latex.log")

s = 0

for line in f:

line = line.strip('\n') #将每一行字符串的首尾的换行符去掉

if len(line) == 0: #过滤掉空行

continue

s += 1

print("共{}行".format(s))

练习2:文件字符分布

描述

统计附件文件的小写字母a-z的字符分布,即出现a-z字符的数量,并输出结果。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

同时请输出文件一共包含的字符数量。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

注意输出格式,各元素之间用英文逗号(,)分隔。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

答案可能包含a-z共26个字符的分布,如果某个字符没有出现,则不显示,输出顺序a-z顺序。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入输出示例

仅格式示例,非最终答案。

输入

输出

示例 1

共999字符,a:11,b:22,c:33,d:44,e:55

我的代码

#week7_2.py

#统计文件的字符数及每种字符的个数

f=open("latex.log")

chrs=0

counts={}

for i in range(26): #生成字典counts的a-z的索引,值皆为0

counts[chr(ord('a')+i)]=0 #要掌握这种批量处理字符的技巧

for line in f:

for c in line:

counts[c] = counts.get(c,0)+1 #字典的get方法很重要!

chrs +=1 #累加每行的字符数

print("共{}字符".format(chrs),end="") #打印总字符数后不换行

for i in range(26):

if counts[chr(ord('a')+i)] !=0: #过滤掉值为零的键

print(",{}:{}".format(chr(ord('a')+i),counts[chr(ord('a')+i)]),end="")

参考代码

f = open("latex.log")

cc = 0

d = {}

for i in range(26):

d[chr(ord('a')+i)] = 0

for line in f:

for c in line:

d[c] = d.get(c, 0) + 1

cc += 1

print("共{}字符".format(cc), end="")

for i in range(26):

if d[chr(ord('a')+i)] != 0:

print(",{}:{}".format(chr(ord('a')+i), d[chr(ord('a')+i)]), end="")

说明:这题比较难,我是参考答案完成的

练习3:文件独特行数

描述

统计附件文件中与其他任何其他行都不同的行的数量,即独特行的数量。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬输入输出示例

此处仅示例输出格式。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入

输出

示例 1

共99独特行

我的代码

#week7_3.py

#统计文件独特行的行数

f=open("latex.log")

line=f.readlines() #安行读入文件的所有行,每行为列表的一个元素(字符串)

s=set(line) #列表转换成集合,去重,注意这时的行数不是独特行!每种重复N次的行都计为1行

for i in s:

line.remove(i) #列表中去掉不重复的行,剩下的是原列表中有重复的行

t=set(line) #有重复的行集合

print("共{}独特行".format(len(s)-len(t)))

说明 :觉得很难,参考参考答案完成的

练习4:CSV格式列变换

描述

附件是一个CSV文件,请将每行按照列逆序排列后输出,不改变各元素格式(如周围空格布局等)。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入输出示例

这是一个格式示例,不是正确结果。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入

输出

示例 1

(以下是文件内容)

1,2,3,4

a,b,c,d

4,3,2,1

d,c,b,a

我的代码

#week7_4.py

#CSV文件的每一行倒序排,不改变空格等信息

f = open("data.csv")

ls = []

for line in f:

line =line.replace("\n","") #去掉每行末的换行符

ls.append(line.split(",")) #空列表中加入字符串列表,最后得一二维列表

f.close()

for row in ls:

print(",".join(row[::-1])) #要掌握.join()方法的使用

练习5:CSV格式数据清洗

描述

附件是一个CSV文件,其中每个数据前后存在空格,请对其进行清洗,要求如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

(1)去掉每个数据前后空格,即数据之间仅用逗号(,)分割;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

(2)清洗后打印输出。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入输出示例

这里是一个格式示例,不是正确结果。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入

输出

示例 1

(在文件中)

1, 2, 3, 4, 5

'a', 'b' , 'c' , 'd','e'

1,2,3,4,5

'a','b','c','d','e'

我的代码

#week7_5V1.py

#CSV文件格式清洗

f = open("data.csv")

for line in f:

line =line.replace(" ","")

line = line.strip("\n") #把每行(一字符串),去掉字符串的首尾的换行符

print(line)

f.close()

原文



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3